package com.qinyi.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author wangan on 2019/6/4
 * @description
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Excel {

	/**
	 * 导出名称
	 *
	 * @return
	 */
	String name();

	/**
	 * 时间格式化方式
	 *
	 * @return
	 */
	String dateFormat() default "yyyy-MM-dd";

	/**
	 * 读取内容转换,数据字典
	 *
	 * @return
	 */
	String readConverterExp() default "";

	/**
	 * 1导出 2导入 0导入/导出
	 *
	 * @return
	 */
	Type type() default Type.ALL;

	/**
	 * 提示信息
	 *
	 * @return
	 */
	String prompt() default "";

	/**
	 * 导出时在excel中每个列的高度 单位为字符
	 */
	double height() default 14;

	/**
	 * 导出时在excel中每个列的宽 单位为字符
	 */
	double width() default 16;

	/**
	 * 另一个类中的属性名称,支持多级获取,以小数点隔开
	 * @return
	 */
	String targetAttr() default "";

	enum Type {
		ALL(0), EXPORT(1), IMPORT(2);
		private final int value;

		Type(int value) {
			this.value = value;
		}

		public int getValue() {
			return value;
		}
	}

}
